#ifndef _BSP_DS18B20_H_
#define _BSP_DS18B20_H_

#include "stm32f10x.h"

/****************下面做一些有关DS18B20管脚的宏定义*************************/
#define			DS18B20_DAT1_PORT				GPIOB
#define			DS18B20_DAT1_PIN				GPIO_Pin_7
#define			DS18B20_DAT1_CLK				RCC_APB2Periph_GPIOB

#define			DS18B20_DAT2_PORT				GPIOB
#define			DS18B20_DAT2_PIN				GPIO_Pin_12
#define			DS18B20_DAT2_CLK				RCC_APB2Periph_GPIOB

#define			DS18B20_DAT3_PORT				GPIOB
#define			DS18B20_DAT3_PIN				GPIO_Pin_13
#define			DS18B20_DAT3_CLK				RCC_APB2Periph_GPIOB

#define			DS18B20_DAT4_PORT				GPIOA
#define			DS18B20_DAT4_PIN				GPIO_Pin_15
#define			DS18B20_DAT4_CLK				RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO

//管脚操作宏函数
#define			DS18B20_DAT1_HIGH()				GPIO_SetBits(DS18B20_DAT1_PORT,DS18B20_DAT1_PIN)   //这个脚为写管脚
#define			DS18B20_DAT1_LOW()				GPIO_ResetBits(DS18B20_DAT1_PORT,DS18B20_DAT1_PIN)

#define			DS18B20_DAT2_HIGH()				GPIO_SetBits(DS18B20_DAT2_PORT,DS18B20_DAT2_PIN)   //这个脚为写管脚
#define			DS18B20_DAT2_LOW()				GPIO_ResetBits(DS18B20_DAT2_PORT,DS18B20_DAT2_PIN)

#define			DS18B20_DAT3_HIGH()				GPIO_SetBits(DS18B20_DAT3_PORT,DS18B20_DAT3_PIN)   //这个脚为写管脚
#define			DS18B20_DAT3_LOW()				GPIO_ResetBits(DS18B20_DAT3_PORT,DS18B20_DAT3_PIN)

#define			DS18B20_DAT4_HIGH()				GPIO_SetBits(DS18B20_DAT4_PORT,DS18B20_DAT4_PIN)   //这个脚为写管脚
#define			DS18B20_DAT4_LOW()				GPIO_ResetBits(DS18B20_DAT4_PORT,DS18B20_DAT4_PIN)

#define			DS18B20_DAT1()					GPIO_ReadInputDataBit(DS18B20_DAT1_PORT,DS18B20_DAT1_PIN)
#define			DS18B20_DAT2()					GPIO_ReadInputDataBit(DS18B20_DAT2_PORT,DS18B20_DAT2_PIN)
#define			DS18B20_DAT3()					GPIO_ReadInputDataBit(DS18B20_DAT3_PORT,DS18B20_DAT3_PIN)
#define			DS18B20_DAT4()					GPIO_ReadInputDataBit(DS18B20_DAT4_PORT,DS18B20_DAT4_PIN)
 uint8_t Start18B20 (uint8_t index);
float GetCurrentTemp(void);
void	DS18B20_GPIO_Init(void);
#endif

